﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

namespace TileMapEditor.Tools
{
    public static class EditorPrefsWrapper
    {
        public static void SetVector2( string name, Vector2 v2 )
        {
            EditorPrefs.SetFloat( name + "_x", v2.x );
            EditorPrefs.SetFloat( name + "_y", v2.y );
        }

        public static Vector2 GetVector2( string name )
        {
            return new Vector2() {
                x = EditorPrefs.GetFloat( name + "_x", 0f ),
                y = EditorPrefs.GetFloat( name + "_y", 0f )
            };
        }

        public static void SetVector3( string name, Vector3 v3 )
        {
            EditorPrefs.SetFloat( name + "_x", v3.x );
            EditorPrefs.SetFloat( name + "_y", v3.y );
            EditorPrefs.SetFloat( name + "_z", v3.z );
        }

        public static Vector3 GetVector3( string name )
        {
            return new Vector3() {
                x = EditorPrefs.GetFloat( name + "_x", 0f ),
                y = EditorPrefs.GetFloat( name + "_y", 0f ),
                z = EditorPrefs.GetFloat( name + "_z", 0f )
            };
        }

        public static void SetVector4( string name, Vector4 v4 )
        {
            EditorPrefs.SetFloat( name + "_x", v4.x );
            EditorPrefs.SetFloat( name + "_y", v4.y );
            EditorPrefs.SetFloat( name + "_z", v4.z );
            EditorPrefs.SetFloat( name + "_w", v4.w );
        }

        public static Vector4 GetVector4( string name )
        {
            return new Vector4() {
                x = EditorPrefs.GetFloat( name + "_x", 0f ),
                y = EditorPrefs.GetFloat( name + "_y", 0f ),
                z = EditorPrefs.GetFloat( name + "_z", 0f ),
                w = EditorPrefs.GetFloat( name + "_w", 0f )
            };
        }

        public static void SetColor( string name, Color color )
        {
            EditorPrefs.SetFloat( name + "_r", color.r );
            EditorPrefs.SetFloat( name + "_g", color.g );
            EditorPrefs.SetFloat( name + "_b", color.b );
            EditorPrefs.SetFloat( name + "_a", color.a );
        }

        public static Color GetColor( string name )
        {
            return new Color() {
                r = EditorPrefs.GetFloat( name + "_r", 0f ),
                g = EditorPrefs.GetFloat( name + "_g", 0f ),
                b = EditorPrefs.GetFloat( name + "_b", 0f ),
                a = EditorPrefs.GetFloat( name + "_a", 0f )
            };
        }
    }
}